77 research outputs found

    The cloud paradigm: Are you tuned for the lyrics?

    Get PDF
    Major players, business angels and opinion-makers are broadcasting beguiled lyrics on the most recent IT hype: your software should ascend to the clouds. There are many clouds and the stake is high. Distractedly, many of us became assiduous users of the cloud, but perhaps due to the legacy systems and legacy knowledge, IT professionals, mainly those many that work in business information systems for the long tail, are not as much plunged into producing cloud-based systems for their clients. This keynote will delve into several aspects of this cloud paradigm, from more generic concerns regarding security and value for money, to more specific worries that reach software engineers in general. Do we need a different software development process? Are development techniques and tools mature enough? What about the role of open-source in the cloud? How do we assess the quality in cloud-based development? Please stay tuned for more!Comment: Position paper to introduce a keynote, proceedings of WAMPS'2011 - VI Annual MPS.BR Workshop, pp. 20-25, Campinas, Brazil, October 201

    Quantitative Methods in Object-Oriented Software Engineering

    Get PDF
    This paper includes a brief description of the author’s doctoral research work in Quantitative Methods applied to the Object-Oriented Software Engineering field. Previous, current and future research work are outlined. An overview of related work is also included

    Object-Oriented Software Design Metrics

    Get PDF
    The adoption of the Object-Oriented paradigm is expected to help produce better and cheaper software. The main concepts of this paradigm, namely, inheritance, encapsulation, information hiding or polymorphism, are the keys to foster reuse and achieve easier maintainability. However, the use of constructs that support those concepts can be more or less intensive, mainly depending on the designer ability. Advances in quality and productivity need to be correlated with the use of those constructs. Therefore, we need to evaluate them quantitatively to guide OO design. The availability of these metrics should allow comparison of different systems or different implementations of the same system, thus helping to derive some design heuristics that could/should be included in design tools. Those heuristics would at least be a valuable help to new staff members. "Blind" choice (or creation) is dangerous, so a set of common requirements for metrics and corresponding rationale was introduced, which includes the need for formal definition, language independence, dimensionlessness, ease of calculation and early obtainability. A suitable metrics set named MOOD was then proposed. We believe that these metrics can help in setting OO design standards at the organization level, helping OO practitioners to guide their development process and, hopefully, leaving them in a cheerful MOOD..

    Software evolution prediction using seasonal time analysis: a comparative study

    Get PDF
    Prediction models of software change requests are useful for supporting rational and timely resource allocation to the evolution process. In this paper we use a time series forecasting model to predict software maintenance and evolution requests in an open source software project (Eclipse), as an example of projects with seasonal release cycles. We build an ARIMA model based on data collected from Eclipse’s change request tracking system since the project’s start. A change request may refer to defects found in the software, but also to suggested improvements in the system under scrutiny. Our model includes the identification of seasonal patterns and tendencies, and is validated through the forecast of the change requests evolution for the next 12 months. The usage of seasonal information significantly improves the estimation ability of this model, when compared to other ARIMA models found in the literature, and does so for a much longer estimation period. Being able to accurately forecast the change requests’ evolution over a fairly long time period is an important ability for enabling adequate process control in maintenance activities, and facilitates effort estimation and timely resources allocation. The approach presented in this paper is suitable for projects with a relatively long history, as the model building process relies on historic data

    Evolution, survival and anomalies

    Get PDF
    Rio, A., & Abreu, F. B. E. (2023). PHP code smells in web apps: Evolution, survival and anomalies. Journal of Systems and Software, 200, 1-23. [111644]. https://doi.org/10.1016/j.jss.2023.111644Abstract Context: Code smells are symptoms of poor design, leading to future problems, such as reduced maintainability. Therefore, it becomes necessary to understand their evolution and how long they stay in code. This paper presents a longitudinal study on the evolution and survival of code smells (CS) for web apps built with PHP, the most widely used server-side programming language in web development and seldom studied. Objectives: We aimed to discover how CS evolve and what is their survival/lifespan in typical PHP web apps. Does CS survival depend on their scope or app life period? Are there sudden variations (anomalies) in the density of CS through the evolution of web apps? Method: We analyzed the evolution of 18 CS in 12 PHP web applications and compared it with changes in app and team size. We characterized the distribution of CS and used survival analysis techniques to study CS’ lifespan. We specialized the survival studies into localized (specific location) and scattered CS (spanning multiple classes/methods) categories. We further split the observations for each web app into two consecutive time frames. As for the CS evolution anomalies, we standardized their detection criteria. Results: The CS density trend along the evolution of PHP web apps is mostly stable, with variations, and correlates with the developer’s numbers. We identified the smells that survived the most. CS live an average of about 37% of the life of the applications, almost 4 years on average in our study; around 61% of CS introduced are removed. Most applications have different survival times for localized and scattered CS, and localized CS have a shorter life. The CS survival time is shorter and more CS are introduced and removed in the first half of the life of the applications. We found anomalies in the evolution of 5 apps and show how a graphical representation of sudden variations found in the evolution of CS unveils the story of a development project. Conclusion: CS stay a long time in code. The removal rate is low and did not change substantially in recent years. An effort should be made to avoid this bad behavior and change the CS density trend to decrease.publishersversionepub_ahead_of_prin

    Model-Driven Service Level Management

    Get PDF
    Abstract. Service-level agreements (SLA) definition and monitoring are open issues within the IT Service Management (ITSM) domain. Our main goals are to propose a model-based approach to IT services SLA specification and compliance verification. The specification part will be accomplished by proposing a SLA language -a domain specific language (DSL) for defining quality attributes as non functional requirements (NFRs) in the context of ITSM. Its metamodel will be an extension of the meta-model of an adopted process modeling language for IT services. As such, it will be possible to ground SLA definition on the corresponding IT service model constructs. This will allow that SLA monitoring and compliance validation could occur at a level of abstraction that is understood by all the stakeholders involved in the service specification

    Crowdsmelling: The use of collective knowledge in code smells detection

    Full text link
    Code smells are seen as major source of technical debt and, as such, should be detected and removed. However, researchers argue that the subjectiveness of the code smells detection process is a major hindrance to mitigate the problem of smells-infected code. We proposed the crowdsmelling approach based on supervised machine learning techniques, where the wisdom of the crowd (of software developers) is used to collectively calibrate code smells detection algorithms, thereby lessening the subjectivity issue. This paper presents the results of a validation experiment for the crowdsmelling approach. In the context of three consecutive years of a Software Engineering course, a total "crowd" of around a hundred teams, with an average of three members each, classified the presence of 3 code smells (Long Method, God Class, and Feature Envy) in Java source code. These classifications were the basis of the oracles used for training six machine learning algorithms. Over one hundred models were generated and evaluated to determine which machine learning algorithms had the best performance in detecting each of the aforementioned code smells. Good performances were obtained for God Class detection (ROC=0.896 for Naive Bayes) and Long Method detection (ROC=0.870 for AdaBoostM1), but much lower for Feature Envy (ROC=0.570 for Random Forrest). Obtained results suggest that crowdsmelling is a feasible approach for the detection of code smells, but further validation experiments are required to cover more code smells and to increase external validity

    AVALIAÇÃO EMPÍRICA DO SUCESSO DA UTILIZAÇÃO DA GESTÃO ÁGIL DE PROJETOS NO DESENVOLVIMENTO DE SOFTWARE EM PORTAIS DE NOTÍCIAS DO BRASIL

    Get PDF
    Agile approaches are gaining more and more practitioners, but the evidences on the real contribution of these approaches upon the projects success are still scarce. This paper corroborates the existence of agile factors contributing to the software projects success, through a field study of descriptive and quantitative nature with hypotheses testing. A questionnaire was submitted to IT professionals of the ten most visited news portals in Brazil. This business domain was chosen because it is characterized by a large adaptation and by the required agility in projects, due to their nature. We obtained 63 answers from participants in 8 Brazilian organizations. The results allowed us to corroborate the existence of three agile factors that contributed mostly to the success of software projects: i) Delivery Strategies; ii) Training and Commitment Team; and iii) Customer Involvement. These factors were determined by Principal Component Analysis, based on a large number of agile practices identified in the literature.As abordagens ágeis vêm conquistando cada vez mais praticantes, mas as evidências sobre a real contribuição dessas abordagens para o sucesso dos projetos ainda são escassas. Este artigo corrobora a existência de fatores ágeis contribuintes para o sucesso de projetos de software, por meio de uma pesquisa de campo, de natureza descritiva e quantitativa, com teste de hipóteses. Foi aplicado um questionário aos profissionais de TI de 10 dos mais visitados portais de notícias do Brasil. Optou-se por este domínio de negócio devido ao mesmo ser caracterizado por grande adaptação e por exigir agilidade nos projetos, devido à sua natureza. Foram obtidas 63 respostas de participantes de 8 organizações. Os resultados permitiram corroborar a existência de três fatores ágeis que contribuíram mais intensamente para o sucesso dos projetos de software: (i) Estratégias de Entregas; (ii) Capacitação e Comprometimento da Equipe; e (iii) Envolvimento do Cliente. Esses fatores foram determinados por análise de componentes principais, tendo como base um grande número de abordagens ágeis identificadas na literatur
    corecore